#include "cam.h"
#include "stdio.h"
void cam_setup(void)
{
camera_config_t CAM_CFG={
.ledc_channel       = LEDC_CHANNEL_0,
.ledc_timer         = LEDC_TIMER_0,
.pin_d0             = Y2_GPIO_NUM,
.pin_d1             = Y3_GPIO_NUM,
.pin_d2             = Y4_GPIO_NUM,
.pin_d3             = Y5_GPIO_NUM,
.pin_d4             = Y6_GPIO_NUM,
.pin_d5             = Y7_GPIO_NUM,
.pin_d6             = Y8_GPIO_NUM,
.pin_d7             = Y9_GPIO_NUM,
.pin_xclk           = XCLK_GPIO_NUM,
.pin_pclk           = PCLK_GPIO_NUM,
.pin_vsync          = VSYNC_GPIO_NUM,
.pin_href           = HREF_GPIO_NUM,
.pin_sccb_sda       = SIOD_GPIO_NUM,
.pin_sccb_scl       = SIOC_GPIO_NUM,
.pin_pwdn           = PWDN_GPIO_NUM,
.pin_reset          = RESET_GPIO_NUM,
.xclk_freq_hz       = 20000000,
.frame_size         = FRAMESIZE_240X240,
.pixel_format       = PIXFORMAT_RGB565,
.grab_mode          = CAMERA_GRAB_LATEST,
.fb_location        = CAMERA_FB_IN_PSRAM,
.jpeg_quality       = 10,
.fb_count           = 1
};

esp_err_t err = esp_camera_init(&CAM_CFG);
  if (err != ESP_OK) {
    printf("Camera init failed with error 0x%x", err);
    return;
  }
  else{
    printf("Camera init successed\n");
  }

  sensor_t *s = esp_camera_sensor_get();
  if (s->id.PID == OV3660_PID) {
    s->set_vflip(s, 1);        // flip it back
    s->set_contrast(s,1);
    s->set_quality(s,10);
    s->set_brightness(s, 2);   // up the brightness just a bit
    s->set_saturation(s, -1); 
    s->set_hmirror(s,0);
     // lower the saturation
  }
}

